home *** CD-ROM | disk | FTP | other *** search
/ PC Gamer (Italian) 32 / PC Gamer IT CD 32 2-2.iso / drivers / videodrv / T9850 / DRIVER / WIN31 / TRI_AFC.H < prev    next >
C/C++ Source or Header  |  1995-04-27  |  12KB  |  307 lines

  1. //*** Start of Trident VAFC definition
  2. #include "vesa_afc.h"
  3.  
  4. #ifndef _TRID_AFC
  5. #define    _TRID_AFC
  6.  
  7. /*** Definition of current Trident VAG cards' (VAFC supported) ID
  8. ***/
  9. #define LCD        0xa3
  10. #define    Aladin  0xe3
  11. #define    Dragon    0xd3
  12.  
  13. //*** Definition of Device Capabilities
  14.  
  15. #define Tri_Vendor_String "Trident Microsystems"
  16. #define Tri_Model_ID         9440
  17. #define Tri_Rev_ID             0
  18. #define Tri_Version            ox00
  19.  
  20. #ifdef Dragon
  21. #undef    Tri_Version
  22. #define    Tri_Version            0xd3
  23. #endif
  24.  
  25. #ifdef Aladin                   
  26. #undef    Tri_Version
  27. #define    Tri_Version            0xe3
  28. #endif
  29.  
  30. #define Tri_Dev_Caps         (                            \
  31.                             VAFC_SUPPORTS_OVERLAY_KEY|     \
  32.                             VAFC_SUPPORTS_OVERLAY_MASKS|\
  33.                             VAFC_SUPPORTS_OEM_API        \
  34.                             )                                                       
  35.  
  36. //*** Current Available VGA Color Space Types
  37. #define     Num_of_Color_Spaces        4        //The number of supported color spaces 
  38. #define     Supported_Color_Spaces    DWORD CoSpAr[Num_of_Color_Spaces] ={     \
  39.                         VAFCRGB_8_INDEXED,                                    \
  40.                         VAFCRGB_15A,                                        \
  41.                         VAFCRGB_16,                                            \
  42.                         VAFCRGB_24};
  43.                             
  44.         
  45. /* Status Codes ----------------------------------*/
  46.  
  47. #define VAFCERR_NOSUPPORT_KEY_TYPE        (VAFCERR_MAX_ERRORS+1)    /*Key type was recognized, but not supported*/
  48. #define VAFCERR_NOSUPPORT_PCLK_DELAY    (VAFCERR_MAX_ERRORS+2)    /*Recognized pclk delay not supported*/
  49. #define VAFCERR_NOSUPPORT_CLK_PHASE        (VAFCERR_MAX_ERRORS+3)    /*Recognized clock phase can not be changed*/
  50. #define VAFCERR_NOSUPPORT_CLK_POL        (VAFCERR_MAX_ERRORS+4)    /*Selected Clock polarity can not be changed*/
  51. #define VAFCERR_NOSUPPORT_PXL_OUT        (VAFCERR_MAX_ERRORS+5)    /*Pixel Data enable/disable can not be changed*/
  52. #define VAFCERR_NOSUPPORT_SYNC            (VAFCERR_MAX_ERRORS+6)    /*Known sync can not be changed*/
  53. #define VAFCERR_NOSUPPORT_GRAPHICS_INFO    (VAFCERR_MAX_ERRORS+7)  /* Get graphics information is not supported */    
  54. #define VAFCERR_NOSUPPORT_PREFERRED_SETUP (VAFCERR_MAX_ERRORS+8)  /* Get preferred setup is not supported */
  55. #define VAFCERR_INVALID_KEY_TYPE        (VAFCERR_MAX_ERRORS+9)    /*Key type was unknown*/
  56. #define VAFCERR_INVALID_CLK_ATTRIB        (VAFCERR_MAX_ERRORS+10)    /*Unknown clock attribute*/
  57. #define VAFCERR_INVALID_CLK                (VAFCERR_MAX_ERRORS+11)    /*Unknown clk*/
  58. #define VAFCERR_INVALID_PCLK_DELAY        (VAFCERR_MAX_ERRORS+12)    /*Unknown pixel clock delay*/
  59. #define VAFCERR_INVALID_SYNC            (VAFCERR_MAX_ERRORS+13)    /*Unknown sync*/
  60.  
  61. #define FC_CONNECTED                    (VAFCERR_MAX_ERRORS+14)   /* FC connected physically */
  62. #define VAFC_CONNECTED                    (VAFCERR_MAX_ERRORS+15)    /* VAFC Connected physically */
  63. #define VAFC_DRIVER_UNINSTALLED            (VAFCERR_MAX_ERRORS+16)    /* Can't find VAFC Driver */
  64. #define VAFC_LCD_WITHOUT_VLORPCIBUS     (VAFCERR_MAX_ERRORS+17) /* VAFC on LCD not with VL or PCI */
  65.  
  66. #define VAFCERR_NOTTRID_VGA                (VAFCERR_MAX_ERRORS+18)    /* Not a trident VGA card */
  67. #define VAFCERR_NOSUPPORT_SET_PXLOUT    (VAFCERR_MAX_ERRORS+19)    /* The pixel out bit should always be 0, i.e. disabled */
  68. /*
  69.  * The following define the type of keying the VGA card will do.
  70.  * Tell the keying mechanism when to enable the video and vga
  71.  * These parameters will be used by the following message commands:
  72.  *    DRV_VAFC_GET_KEY_TYPE
  73.  *  DRV_VAFC_SET_KEY_TYPE
  74.  */
  75. #define VAFCVGA                        (VAFCESCAPE|0x0)        //VGA port only
  76. #define VAFCCOLOR_AND_VIDEO            (VAFCESCAPE|0x1)        //Video key & Color key
  77. #define VAFCCOLOR_AND_NOT_VIDEO        (VAFCESCAPE|0x2)        //Color key & ~Video key
  78. #define VAFCCOLOR                    (VAFCESCAPE|0x3)        //Color key
  79. #define VAFCNOT_COLOR_AND_VIDEO        (VAFCESCAPE|0x4)        //~Color key & Video key
  80. #define VAFCVIDEO                    (VAFCESCAPE|0x5)        //Video key
  81. #define VAFCCOLOR_XOR_VIDEO            (VAFCESCAPE|0x6)        //Color key xor Video key
  82. #define VAFCCOLOR_OR_VIDEO            (VAFCESCAPE|0x7)        //Color key | Video key
  83. #define VAFCNOT_COLOR_AND_NOT_VIDEO    (VAFCESCAPE|0x8)        //~Color key & ~Video key
  84. #define VAFCCOLOR_XNOR_VIDEO        (VAFCESCAPE|0x9)        //Color key xnor Video key
  85. #define VAFCNOT_VIDEO                (VAFCESCAPE|0xa)        //~Video key
  86. #define VAFCCOLOR_OR_NOT_VIDEO      (VAFCESCAPE|0xb)        //Color key | ~Video key
  87. #define VAFCNOT_COLOR               (VAFCESCAPE|0xc)        //~Color key
  88. #define VAFCNOT_COLOR_OR_VIDEO      (VAFCESCAPE|0xd)        //~Color key | Video key
  89. #define VAFCNOT_COLOR_OR_NOT_VIDEO  (VAFCESCAPE|0xe)        //~Color key | ~Video key
  90. #define VAFCVIDEO_PORT              (VAFCESCAPE|0xf)        //Video port only
  91.  
  92. /*
  93.  * The following definitions defines the amount of delay to make the 
  94.  * pixel clock with respect to the pixel data
  95.  * These parameters will be used by the following message commands:
  96.  *    DRV_VAFC_GET_PCLK_DELAY
  97.  *  DRV_VAFC_SET_PCLK_DELAY
  98.  */
  99. #define VAFCPIXEL_DELAY_0            (VAFCESCAPE|0x0)        //0 ns delay
  100. #define VAFCPIXEL_DELAY_4            (VAFCESCAPE|0x1)        //4 ns delay
  101. #define VAFCPIXEL_DELAY_8            (VAFCESCAPE|0x2)        //8 ns delay
  102. #define VAFCPIXEL_DELAY_12            (VAFCESCAPE|0x3)        //12 ns delay
  103.  
  104. /*
  105.  * The following definitions defines the Different polarities and phase
  106.  * of clocks that can be set
  107.  * The first group tells whether the clock will be inverted or not and the phase
  108.  *     they can be ORed only on the output or getting of info, not on the setting.
  109.  * The second group select the clock to modify
  110.  * These parameters will be used by the following message commands:
  111.  *    DRV_VAFC_GET_CLK
  112.  *    DRV_VAFC_SET_CLK
  113.  */
  114. #define    VAFCCLK_INVERTED            (VAFCESCAPE|0x1)
  115. #define    VAFCCLK_NORMAL                (VAFCESCAPE|0x2)
  116. #define VAFCCLK_0_PHASE                (VAFCESCAPE|0x4)
  117. #define VAFCCLK_180_PHASE            (VAFCESCAPE|0x8)
  118.  
  119. //Definition of the clocks
  120. #define VAFCDCLK_OUT                (VAFCESCAPE|0x0)        //Select the DCLK output polarity
  121. #define VAFCVCLK_IN                    (VAFCESCAPE|0x1)        //Select the VCLK input polarity
  122. #define VAFCSF_INPUT_MODE_CLK        (VAFCESCAPE|0x2)        //Select the Standard feature connector 
  123.                                                             //input mode clock polarity
  124.  
  125. /*
  126.  * The following definitions defines the SYNCs and whether or not they will
  127.  * be set before or after AFC processing
  128.  *  The first group is to tell if it is going to be sent before or after
  129.  * the second group is to select the SYNC
  130.  * These parameters will be used by the following message commands:
  131.  *    DRV_VAFC_GET_SYNC_AFCPROS
  132.  *    DRV_VAFC_SET_SYNC_AFCPROS
  133.  */
  134. #define    VAFCSYNC_BEFORE                (VAFCESCAPE|0x0)
  135. #define    VAFCSYNC_AFTER                (VAFCESCAPE|0x1)
  136.  
  137. //Definition of the syncs
  138. #define VAFCHSYNC_OUT                (VAFCESCAPE|0x0)        //Select the HSYNC
  139.  
  140.  
  141. /* Interface messages -----------------------------*/
  142.  
  143. /*
  144.  * Message: DRV_VAFC_GET_KEY_TYPE
  145.  * LParam1: (LPARAM)(unsigned long far *) &dwKeyType
  146.  * LParam2: (LPARAM) 0L;
  147.  *
  148.  * LRESULT: Non-zero if successful, or zero if the call failed.  Use the DRV_VAFC_GET_ERROR
  149.  *            message to get the error code 
  150.  *
  151.  * The video application or driver uses this message to determine the current keying mode of the 
  152.  * VGA graphics subsystem.
  153.  */
  154. #define DRV_VAFC_GET_KEY_TYPE        (DRV_VAFC_VENDOR_START +0)
  155.  
  156. /*
  157.  * Message: DRV_VAFC_SET_KEY_TYPE
  158.  * LParam1: (LPARAM)(unsigned long) dwKeyType
  159.  * LParam2: (LPARAM) 0L;
  160.  *
  161.  * LRESULT: Non-zero if successful, or zero if the call failed.  Use the DRV_VAFC_GET_ERROR
  162.  *            message to get the error code 
  163.  * The video application or driver uses this message to set the current keying mode of the 
  164.  * VGA graphics subsystem.
  165.  */
  166. #define DRV_VAFC_SET_KEY_TYPE        (DRV_VAFC_VENDOR_START +1)
  167.  
  168. /*
  169.  * Message: DRV_VAFC_GET_PCLK_DELAY
  170.  * LParam1: (LPARAM)(unsigned long far *) &dwDelay
  171.  * LParam2: (LPARAM) 0L;
  172.  *
  173.  * LRESULT: Non-zero if successful, or zero if the call failed.  Use the DRV_VAFC_GET_ERROR
  174.  *            message to get the error code 
  175.  *
  176.  * The video application or driver uses this message to determine the current delay of the 
  177.  * pixel clock.  Delay means the delay of the pixel clock with respect to pixel data.
  178.  */
  179. #define DRV_VAFC_GET_PCLK_DELAY        (DRV_VAFC_VENDOR_START +2)
  180.  
  181. /*
  182.  * Message: DRV_VAFC_SET_PCLK_DELAY
  183.  * LParam1: (LPARAM)(unsigned long) dwDelay
  184.  * LParam2: (LPARAM) 0L;
  185.  *
  186.  * LRESULT: Non-zero if successful, or zero if the call failed.  Use the DRV_VAFC_GET_ERROR
  187.  *            message to get the error code 
  188.  *
  189.  * The video application or driver uses this message to set the current delay of the 
  190.  * pixel clock.
  191.  */
  192. #define DRV_VAFC_SET_PCLK_DELAY        (DRV_VAFC_VENDOR_START +3)
  193.                   
  194. /*
  195.  * Message: DRV_VAFC_GET_CLK
  196.  * LParam1: (LPARAM)(unsigned long) dwClock;
  197.  * LParam2: (LPARAM)(unsigned long far *) &dwAttrib;
  198.  *
  199.  * LRESULT: Non-zero if successful, or zero if the call failed.  Use the DRV_VAFC_GET_ERROR
  200.  *            message to get the error code 
  201.  *
  202.  * The video application or driver uses this message to determine the current polarity or phase of the 
  203.  * clock.  dwAttrib will contain the ORed bits telling the polarity and phase.
  204.  */
  205. #define DRV_VAFC_GET_CLK            (DRV_VAFC_VENDOR_START +4)
  206.  
  207. /*
  208.  * Message: DRV_VAFC_SET_CLK
  209.  * LParam1: (LPARAM)(unsigned long) dwClock;
  210.  * LParam2: (LPARAM)(unsigned long) dwAttrib;
  211.  *
  212.  * LRESULT: Non-zero if successful, or zero if the call failed.  Use the DRV_VAFC_GET_ERROR
  213.  *            message to get the error code 
  214.  *
  215.  * The video application or driver uses this message to set the current polarity or phase of the 
  216.  * clock.
  217.  */
  218. #define DRV_VAFC_SET_CLK            (DRV_VAFC_VENDOR_START + 5)
  219.  
  220. /*
  221.  * Message: DRV_VAFC_GET_SYNC_AFCPROS
  222.  * LParam1: (LPARAM)(unsigned long) dwSync;
  223.  * LParam2: (LPARAM)(unsigned long far *) &dwBefore_After;
  224.  *
  225.  * LRESULT: Non-zero if successful, or zero if the call failed.  Use the DRV_VAFC_GET_ERROR
  226.  *            message to get the error code 
  227.  *
  228.  * The video application or driver uses this message to determine whether the SYNC signal
  229.  * output is set before AFC processing or after AFC processing.
  230.  */
  231. #define DRV_VAFC_GET_SYNC_AFCPROS    (DRV_VAFC_VENDOR_START +6)
  232.                   
  233. /*
  234.  * Message: DRV_VAFC_SET_SYNC_AFCPROS
  235.  * LParam1: (LPARAM)(unsigned long) dwSync;
  236.  * LParam2: (LPARAM)(unsigned long) dwBefore_After;
  237.  *
  238.  * LRESULT: Non-zero if successful, or zero if the call failed.  Use the DRV_VAFC_GET_ERROR
  239.  *            message to get the error code 
  240.  * The video application or driver uses this message to set whether the SYNC signal
  241.  * output is set before AFC processing or after AFC processing.
  242.  */
  243. #define DRV_VAFC_SET_SYNC_AFCPROS    (DRV_VAFC_VENDOR_START +7)
  244.  
  245. /*
  246.  * Message: DRV_VAFC_GET_PXL_OUT
  247.  * LParam1: (LPARAM)(BOOL far *) &dwTF;
  248.  * LParam2: (LPARAM) 0L;
  249.  *
  250.  * LRESULT: Non-zero if successful, or zero if the call failed.  Use the DRV_VAFC_GET_ERROR
  251.  *            message to get the error code 
  252.  *
  253.  * The video application or driver uses this message to determine whether the pixel data bus
  254.  * enable control in AFC mode is disabled all the time or only when EVIDEO# is low.
  255.  */
  256. #define DRV_VAFC_GET_PXL_OUT        (DRV_VAFC_VENDOR_START +8)
  257.  
  258. /*
  259.  * Message: DRV_VAFC_SET_PXL_OUT
  260.  * LParam1: (LPARAM)(BOOL) dwTF;
  261.  * LParam2: (LPARAM) 0L;
  262.  *
  263.  * LRESULT: Non-zero if successful, or zero if the call failed.  Use the DRV_VAFC_GET_ERROR
  264.  *            message to get the error code 
  265.  *
  266.  * The video application or driver uses this message to set whether the pixel data bus
  267.  * enable control in AFC mode is disabled all the time or only when EVIDEO# is low.
  268.  */
  269. #define DRV_VAFC_SET_PXL_OUT        (DRV_VAFC_VENDOR_START +9)
  270.  
  271. /*
  272.  * Following definitions are for DRV_VAFC_GET/SET_OVERLAY_COLOR_INFO
  273.  * LPARAM2 is a operational instruction with one of following values..
  274. */ 
  275. #define    OVERLAY_KEY_ONLY        0x00000001
  276. #define    OVERLAY_MASK_ONLY        0x00000002
  277. #define    OVERLAY_KEY_AND_MASK    0x00000004
  278.  
  279. /*
  280.  * Following definition are for DRV_VAFC_GET/SET_CLK
  281.  * LPARAM1 is a Colck controls structure and LPARAM2 is a operational instruction.
  282. */
  283. typedef struct tagVAFCCLK_CONTROLS {
  284.     unsigned char    SFC_CLK_POLARITY;    /* Standard FC input mode clock polarity selection */
  285.     unsigned char    DCLK_PHASE;            /* DCLK phase selection, available only when DCLK / 2 */
  286.     unsigned char    DCLK_POLARITY;        /* DCLK output polarity */
  287.     unsigned char    VCLK_POLARITY;        /* VCLK input polarity */
  288. } VAFCCLK_CONTROLS;
  289. typedef VAFCCLK_CONTROLS _far *LPVAFCCLK_CONTROLS;
  290.  
  291. #define DO_SFC_CLK_POLARITY        0x00000001
  292. #define DO_DCLK_PHASE            0x00000002
  293. #define DO_DCLK_POLARITY        0x00000004
  294. #define DO_VCLK_POLARITY        0x00000008
  295. #define DO_ALL                    0x00000010
  296.  
  297. /*
  298.  * Following definition is for Memory Mapping mode register access
  299.  */
  300. typedef struct tagVGAMMIO {
  301.     BOOL     bEnabled;
  302.     LPSTR    lpMMIOBase;
  303. } VGAMMIO;
  304. typedef VGAMMIO _far *LPVGAMMIO;
  305.  
  306. #endif //*** End of Trident VAFC defition
  307.